package cn.iocoder.yudao.module.member.service.device;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.member.controller.admin.device.recrod.MemberDeviceRecordPageReqVO;
import cn.iocoder.yudao.module.member.controller.app.device.vo.AppMemberDeviceRecordPageReqVO;
import cn.iocoder.yudao.module.member.dal.dataobject.device.MemberDeviceRecordDO;
import cn.iocoder.yudao.module.member.enums.point.MemberPointBizTypeEnum;

import java.math.BigDecimal;


/**
 * 用户设备余额
 *
 * @author QingX
 */
public interface MemberDeviceRecordService {

    /**
     * 【管理员】获得积分记录分页
     *
     * @param pageReqVO 分页查询
     * @return 签到记录分页
     */
    PageResult<MemberDeviceRecordDO> getDeviceRecordPage(MemberDeviceRecordPageReqVO pageReqVO);

    /**
     * 【会员】获得积分记录分页
     *
     * @param userId 用户编号
     * @param pageReqVO 分页查询
     * @return 签到记录分页
     */
    PageResult<MemberDeviceRecordDO> getDeviceRecordPage(Long userId, AppMemberDeviceRecordPageReqVO pageReqVO);

    /**
     * 创建用户积分记录
     *
     * @param userId  用户ID
     * @param device   变动设备
     * @param bizType 业务类型
     * @param bizId   业务编号
     */
    void createDeviceRecord(Long userId, Integer device, MemberPointBizTypeEnum bizType, String bizId, Integer totalDevice, Integer totalPointFront, Integer timeOut, String version, String udid);
}
